home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet internetowy / Rozne / HTTrack 3.40-2 / httrack-3.40-2.exe / {app} / src / htsopt.h < prev    next >
C/C++ Source or Header  |  2006-01-21  |  9KB  |  227 lines

  1. /* ------------------------------------------------------------ */
  2. /*
  3. HTTrack Website Copier, Offline Browser for Windows and Unix
  4. Copyright (C) Xavier Roche and other contributors
  5.  
  6. This program is free software; you can redistribute it and/or
  7. modify it under the terms of the GNU General Public License
  8. as published by the Free Software Foundation; either version 2
  9. of the License, or any later version.
  10.  
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with this program; if not, write to the Free Software
  18. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  19.  
  20.  
  21. Important notes:
  22.  
  23. - We hereby ask people using this source NOT to use it in purpose of grabbing
  24. emails addresses, or collecting any other private information on persons.
  25. This would disgrace our work, and spoil the many hours we spent on it.
  26.  
  27.  
  28. Please visit our Website: http://www.httrack.com
  29. */
  30.  
  31.  
  32. /* ------------------------------------------------------------ */
  33. /* File: HTTrack parameters block                               */
  34. /*       Called by httrack.h and some other files               */
  35. /* Author: Xavier Roche                                         */
  36. /* ------------------------------------------------------------ */
  37.  
  38.  
  39. #ifndef HTTRACK_DEFOPT
  40. #define HTTRACK_DEFOPT
  41.  
  42. #include <stdio.h>
  43. #include "htsbasenet.h"
  44. #include "htsbauth.h"
  45.  
  46. // structure proxy
  47. typedef struct t_proxy {
  48.   int active;
  49.   char name[1024];
  50.   int port;
  51.   char bindhost[256];   // bind this host
  52. } t_proxy; 
  53.  
  54. /* Structure utile pour copier en bloc les paramΦtres */
  55. typedef struct htsfilters {
  56.   char***  filters;
  57.   int*     filptr;
  58.   //int*    filter_max;
  59. } htsfilters;
  60.  
  61. /* User callbacks chain */
  62. typedef int (*htscallbacksfncptr)(void);
  63. typedef struct htscallbacks htscallbacks;
  64. struct htscallbacks {
  65.   char callbackName[128];
  66.   void* moduleHandle;
  67.   htscallbacksfncptr exitFnc;
  68.   htscallbacks * next;
  69. };
  70.  
  71. /* Structure Θtat du miroir */
  72. typedef struct htsoptstate {
  73.   int stop;
  74.   int exit_xh;
  75.   int back_add_stats;
  76.   /* */
  77.   int mimehtml_created;
  78.   char mimemid[256];
  79.   FILE* mimefp;
  80.   int delayedId;
  81.   /* */
  82.   htscallbacks callbacks;
  83. } htsoptstate;
  84.  
  85.  
  86. // paramΦtres httrack (options)
  87. typedef struct httrackp {
  88.   int wizard;       // wizard aucun/grand/petit
  89.   int flush;        // fflush sur les fichiers log
  90.   int travel;       // type de dΘplacements (same domain etc)
  91.   int seeker;       // up & down
  92.   int depth;        // nombre de niveaux de rΘcursion
  93.   int extdepth;     // nombre de niveaux de rΘcursion α l'ΘxtΘrieur
  94.   int urlmode;      // liens relatifs etc   
  95.   int debug;        // mode dΘbug log
  96.   int getmode;      // sauver html, images..
  97.   FILE* log;        // fichier log
  98.   FILE* errlog;     // et erreur
  99.   LLint maxsite;        // taille max site
  100.   LLint maxfile_nonhtml; // taille max non html
  101.   LLint maxfile_html;   // taille max html
  102.   int maxsoc;           // nbre sockets
  103.   LLint fragment;       // fragmentation d'un site
  104.   int nearlink;         // prendre les images/data proche d'une page mais α l'extΘrieur
  105.   int makeindex;        // faire un index
  106.   int kindex;           // et un index 'keyword'
  107.   int delete_old;       // effacer anciens fichiers
  108.   int timeout;          // nombre de secondes de timeout
  109.   int rateout;          // nombre d'octets minium pour le transfert
  110.   int maxtime;          // temps max en secondes
  111.   int maxrate;          // taux de transfert max
  112. #if HTS_USEMMS
  113.   int mms_maxtime;      // max duration of a mms file
  114. #endif
  115.   float maxconn;        // nombre max de connexions/s
  116.   int waittime;         // dΘmarrage programmΘ
  117.   int cache;            // gΘnΘration d'un cache
  118.   //int aff_progress;     // barre de progression
  119.   int shell;            // gestion d'un shell par pipe stdin/stdout
  120.   t_proxy proxy;        // configuration du proxy
  121.   int savename_83;      // conversion 8-3 pour les noms de fichiers
  122.   int savename_type;    // type de noms: structure originale/html-images en un seul niveau
  123.   char savename_userdef[256];  // structure userdef (ex: %h%p/%n%q.%t)
  124.   int savename_delayed; // delayed type check
  125.   int delayed_cached;   // delayed type check can be cached to speedup updates
  126.   int mimehtml;         // MIME-html
  127.   int user_agent_send;  // user agent (ex: httrack/1.0 [sun])
  128.   char user_agent[128];
  129.   char referer[256];    // referer 
  130.   char from[256];       // from
  131.   char path_log[1024];  // chemin pour cache et log
  132.   char path_html[1024]; // chemin pour miroir
  133.   char path_bin[1024];  // chemin pour templates
  134.   int retry;            // nombre d'essais supplΘmentaires en cas d'Θchec
  135.   int makestat;         // mettre α jour un fichier log de statistiques de transfert
  136.   int maketrack;        // mettre α jour un fichier log de statistiques d'opΘrations
  137.   int parsejava;        // parsing des classes java pour rΘcupΘrer les class, gif & cie
  138.   int hostcontrol;      // abandon d'un host trop lent etc.
  139.   int errpage;          // gΘnΘrer une page d'erreur en cas de 404 etc.
  140.   int check_type;       // si type inconnu (cgi,asp,/) alors tester lien (et gΘrer moved Θventuellement)
  141.   int all_in_cache;     // tout mettre en cache!
  142.   int robots;           // traitement des robots
  143.   int external;         // pages externes->pages d'erreur
  144.   int passprivacy;      // pas de mot de pass dans les liens externes?
  145.   int includequery;     // include la query-string
  146.   int mirror_first_page; // miroir des liens
  147.   char sys_com[2048];   // commande systΦme
  148.   int sys_com_exec;     // executer commande 
  149.   int accept_cookie;    // gestion des cookies
  150.   t_cookie* cookie;
  151.   int http10;           // forcer http 1.0
  152.   int nokeepalive;      // pas de keep-alive
  153.   int nocompression;    // pas de compression
  154.   int sizehack;         // forcer rΘponse "mis α jour" si taille identique
  155.   int urlhack;          // force "url normalization" to avoid loops
  156.   int tolerant;         // accepter content-length incorrect
  157.   int parseall;         // essayer de tout parser (tags inconnus contenant des liens, par exemple)
  158.   int parsedebug;       // dΘbugger parser (debug!)
  159.   int norecatch;        // ne pas reprendre les fichiers effacΘs localement par l'utilisateur
  160.   int verbosedisplay;   // animation textuelle
  161.   char footer[256];     // ligne d'infos
  162.   int maxcache;         // maximum en mΘmoire au niveau du cache (backing)
  163.   //int maxcache_anticipate; // maximum de liens α anticiper (majorant)
  164.   int ftp_proxy;        // proxy http pour ftp
  165.   char filelist[1024];  // fichier liste URL α inclure
  166.   char urllist[1024];   // fichier liste de filtres α inclure
  167.   htsfilters filters;   // contient les pointeurs pour les filtres
  168.   void* hash;           // hash structure
  169.   void* robotsptr;         // robots ptr
  170.   char lang_iso[64];    // en, fr ..
  171.   char mimedefs[2048];  // ext1=mimetype1\next2=mimetype2..
  172.   //
  173.   int maxlink;          // nombre max de liens
  174.   int maxfilter;        // nombre max de filtres
  175.   //
  176.   char* exec;           // adresse du nom de l'Θxecutable
  177.   //
  178.   int quiet;            // poser des questions autres que wizard?
  179.   int keyboard;         // vΘrifier stdin
  180.   int bypass_limits;    // bypass built-in limits
  181.   //
  182.   int is_update;        // c'est une update (afficher "File updated...")
  183.   int dir_topindex;     // reconstruire top index par la suite
  184.   //
  185.   htsoptstate state;    // Θtat
  186. } httrackp;
  187.  
  188. // stats for httrack
  189. typedef struct hts_stat_struct {
  190.   LLint HTS_TOTAL_RECV;      // flux entrant reτu
  191.   LLint stat_bytes;          // octets Θcrits sur disque
  192.   // int HTS_TOTAL_RECV_STATE;  // status: 0 tout va bien 1: ralentir un peu 2: ralentir 3: beaucoup
  193.   TStamp stat_timestart;     // dΘpart
  194.   //
  195.   LLint total_packed;        // flux entrant compressΘ reτu
  196.   LLint total_unpacked;      // flux entrant compressΘ reτu
  197.   int   total_packedfiles;   // fichiers compressΘs
  198.   //
  199.   TStamp istat_timestart[2];   // dΘpart pour calcul instantannΘ
  200.   LLint  istat_bytes[2];       // calcul pour instantannΘ
  201.   TStamp istat_reference01;    // top dΘpart donnΘ par #0 α #1
  202.   int    istat_idlasttimer;    // id du timer qui a rΘcemment donnΘ une stat
  203.   //
  204.   int stat_files;            // nombre de fichiers Θcrits
  205.   int stat_updated_files;    // nombre de fichiers mis α jour
  206.   int stat_background;       // nombre de fichiers Θcrits en arriΦre plan
  207.   //
  208.   int stat_nrequests;        // nombre de requΩtes sur socket
  209.   int stat_sockid;           // nombre de sockets allouΘes au total
  210.   int stat_nsocket;          // nombre de sockets
  211.   int stat_errors;           // nombre d'erreurs
  212.   int stat_errors_front;     // idem, mais au tout premier niveau
  213.   int stat_warnings;         // '' warnings
  214.   int stat_infos;            // '' infos
  215.   int nbk;                   // fichiers anticipΘs en arriΦre plan et terminΘs
  216.   LLint nb;                  // donnΘes transfΘrΘes actuellement (estimation)
  217.   //
  218.   LLint rate;
  219.   //
  220.   TStamp last_connect;      // last connect() call
  221.   TStamp last_request;      // last request issued
  222. } hts_stat_struct;
  223.  
  224.  
  225. #endif
  226.  
  227.